#pragma once
#include <sys/syscall.h>
#include <unistd.h>

namespace current_thread {
extern __thread int t_cache_tid; // 本地拷贝线程的属性副本，但线程是唯一的，全局的

void cache_tid();

inline int tid() {
    if (__builtin_expect(t_cache_tid == 0, 0)) {
        cache_tid();
    }
    return t_cache_tid;
}
} // namespace current_thread